home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG: Essential Home & Business / PC-SIG - Essential Home and Business Collection.iso / 17 / 7 / 3 / 4DOS.ZIP / UPDATE30.DOC < prev    next >
Text File  |  1991-04-12  |  38KB  |  929 lines

  1.  
  2.                            4DOS Update Documentation
  3.  
  4.                              Version 3.03, 4/12/91
  5.  
  6.  
  7.    Copyright 1988 - 1991, JP Software Inc., All Rights Reserved.  Published
  8.    by JP Software Inc., P.O. Box 1470, E. Arlington, MA 02174 USA, (617)
  9.    646-3975.
  10.  
  11.  
  12.    This file provides details on features changed and bug fixes in versions
  13.    3.01, 3.02, and 3.03; and corrections to the version 3 printed manual
  14.    due to typographical errors or new features added after the manual went
  15.    to press.  The ASCII manual distributed with shareware copies of 4DOS
  16.    has already been corrected to include most of the changes in this file
  17.    (all the ones we could fit!), but such corrections have not been made in
  18.    the printed manual.  We have made every effort to ensure that this file
  19.    is as accurate as possible, but we cannot guarantee that every single
  20.    change is included.
  21.  
  22.    This file does not document changes between versions 2 and 3 of 4DOS. 
  23.    If you are a 4DOS version 2 user and this is the first copy of version 3
  24.    you've seen, contact JP Software for documentation on the extensive
  25.    changes between versions 2 and 3, or read through the new manual and
  26.    this file carefully before you begin using version 3.03.
  27.  
  28.    The following marks are used to identify items in this file:
  29.  
  30.       -->     CAUTION:  This change may require modifications to your ex-
  31.               isting batch files, aliases, commands, or common methods of
  32.               using 4DOS.  Check these carefully when replacing an earlier
  33.               version of 4DOS with 4DOS 3.03.
  34.  
  35.       3.0x    This item is new or has been modified for version 3.0x (3.01,
  36.               3.02, or 3.03).
  37.  
  38.       [p nn]  This item corrects or adds to the information in the version
  39.               3 manual, on page "nn".
  40.  
  41.    If you don't want to read through all changes you may find it easiest to
  42.    view this file with 4DOS's LIST command using its (F)ind capability.  If
  43.    you want to see the modifications for version 3.03, search for "3.03";
  44.    if you want to see the changes in your printed manual, search for the
  45.    string "[p".
  46.  
  47.    This file is formatted at 58 lines per page, and contains form feeds and
  48.    page footers.  It can be viewed with a file viewer such as the 4DOS LIST
  49.    command, or printed on most PC printers using the command:
  50.  
  51.               copy update30.doc prn
  52.  
  53.    Printing it with a program that formats the pages is not likely to work
  54.    due to the formatting included in the file.
  55.  
  56.  
  57.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 1
  58.  
  59.  
  60.                                Table of Contents
  61.  
  62.  
  63.    Installation and Configuration  . . . . . . . . . . . . . . . . . .    3
  64.       General Enhancements . . . . . . . . . . . . . . . . . . . . . .    3
  65.       Automatic Installation . . . . . . . . . . . . . . . . . . . . .    3
  66.       Command Line Options . . . . . . . . . . . . . . . . . . . . . .    3
  67.  
  68.    Features and Usage  . . . . . . . . . . . . . . . . . . . . . . . .    5
  69.       General Features . . . . . . . . . . . . . . . . . . . . . . . .    5
  70.       Command Line Editing . . . . . . . . . . . . . . . . . . . . . .    5
  71.       Batch Files  . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  72.       I/O Redirection  . . . . . . . . . . . . . . . . . . . . . . . .    6
  73.       Environment Variables  . . . . . . . . . . . . . . . . . . . . .    6
  74.       Technical Information  . . . . . . . . . . . . . . . . . . . . .    8
  75.  
  76.    Commands  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  77.       ALIAS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  78.       BEEP, DELAY  . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  79.       CD and CDD . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  80.       COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  81.       DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  82.       DIR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  83.       EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  84.       FOR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  85.       GLOBAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  86.       GOSUB  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  87.       GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  88.       IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  89.       KEYSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  90.       LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
  91.       LOADBTM  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
  92.       PROMPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
  93.       REN  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  94.       SET  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  95.       SETDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  96.       TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  97.       TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  98.       Y  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14
  99.  
  100.    HELP System . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  101.       New Capabilities and Topics  . . . . . . . . . . . . . . . . . .   15
  102.       Environment Variables and Switches . . . . . . . . . . . . . . .   15
  103.       Configuring HELP with HELPCFG  . . . . . . . . . . . . . . . . .   16
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 2
  116.  
  117.  
  118.    Installation and Configuration
  119.    ------------------------------
  120.  
  121.    This section discusses changes in the way 4DOS is installed and config-
  122.    ured on your system.  It is not an explanation of how to install your
  123.    upgrade to version 3.03 (for that see README.DOC).  For more information
  124.    on installation see pages 9 - 26 of the manual.
  125.  
  126.  
  127.       General Enhancements:
  128.  
  129.    3.02   [p 27]  When starting a shareware copy of 4DOS there is a 1/2-
  130.           second, two-tone beep to identify this as a shareware copy, fol-
  131.           lowed by a 3-second delay to allow reading of the shareware re-
  132.           minder message.  Beginning with version 3.02, you can skip this
  133.           delay by pressing any key.
  134.  
  135.  
  136.       Automatic Installation:
  137.  
  138.           [p 13] The command to start automatic installation has been
  139.           changed to:
  140.  
  141.                     x:install x y
  142.  
  143.           where "x" is the drive the 4DOS disk is in, and "y" is the drive
  144.           on which you want to install 4DOS.  See README.1ST for more de-
  145.           tailed instructions if you need them.
  146.  
  147.  
  148.       Command Line Options:
  149.  
  150.           All the items below refer to information on pages 21 - 23 of the
  151.           manual.
  152.  
  153.    3.01   [p 21-23]  Either / or - may be used as the switch character on
  154.           the 4DOS command line (eg SHELL=4DOS -S:E instead of /S:E, etc.).
  155.  
  156.           [p 21]  The file specified in the "@filename" option can have
  157.           more than one line, and is limited to a total of 255 characters
  158.           in the file, not 128.  A file invoked with @filename can have
  159.           another @filename inside it.  Wherever @filename occurs, all
  160.           options placed after it are ignored, so it must be the last item
  161.           present.
  162.  
  163.           [p 21]  The /A switch supports the same incremental syntax used
  164.           with /E, i.e. /A+n.  When used in 4DSHELL this allows you to
  165.           guarantee a specified amount of free alias space in secondary
  166.           shells.
  167.  
  168.           [p 21]  /E:nnnn may also be followed by S (/E:nnnnS) to swap the
  169.           master copy of the environment.  This will save a small amount of
  170.           low memory, but may not be compatible with all applications, and
  171.  
  172.  
  173.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 3
  174.  
  175.           will not work with any application that needs to modify the mas-
  176.           ter environment.
  177.  
  178.           [p 22]  4DOS will normally reduce the space used to swap a sec-
  179.           ondary shell by retrieving static information from the primary
  180.           shell's swap area.  This reduces secondary shell swap size from
  181.           68K or more to about 20K.  This feature will not work if the
  182.           total of your alias, history, and environment sizes in the sec-
  183.           ondary shell is larger than that specified for the primary shell,
  184.           or if the size of DOS memory has been reduced when the secondary
  185.           shell is started (e.g. by a program like DESQView that reserves
  186.           some memory at the top end of DOS memory).  In such cases second-
  187.           ary shells will require a full-size swap area.  The size of the
  188.           swap area is displayed in the "swapping initialized (nnK)" mes-
  189.           sage when 4DOS starts.
  190.  
  191.    3.01   [p 22]  The default location for disk swap files in secondary
  192.    -->    shells is now in the root directory of the drive specified in the
  193.           COMSPEC environment variable (the drive where 4DOS.COM is
  194.           stored).  If you want disk swap files to go to another drive or
  195.           directory, use the "/S:Bd:\path" or "/S:Dd:\path" settings in the
  196.           4DSHELL environment variable (see page 25 of the manual).  This
  197.           should cut down on swap file clutter, yet leave you with complete
  198.           control over swap file location.  
  199.  
  200.    3.01   [p 23]  The /U switch requires 386MAX, MOVE-EM 1.02 or above,
  201.           QRAM, or QEMM 5.0 or above.  It may not be compatible with all
  202.           other software products.  See COMPAT.DOC for full details on com-
  203.           patibility.
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 4
  232.  
  233.  
  234.    Features and Usage
  235.    ------------------
  236.  
  237.    This section discusses changes in 4DOS features and usage which are not
  238.    specific to a particular command and which are not related to installa-
  239.    tion and startup.
  240.  
  241.       General Features:
  242.  
  243.           [p 29]  The command history is now automatically passed to sec-
  244.           ondary shells.  It is passed in one direction only, i.e. addi-
  245.           tional commands entered in the secondary shell will not be passed
  246.           back to the primary shell.  To disable this option, place a HIS-
  247.           TORY /F command in your 4START file.
  248.  
  249.    3.02   The "?" character in filename wildcards now matches zero or more
  250.    -->    characters like COMMAND.COM instead of one or more like previous
  251.           versions of 4DOS.  Thus "DIR A?." will match both the files "A"
  252.           and "AA"; before it would only match "AA".  This change adjusts
  253.           4DOS to work the way COMMAND.COM works instead of the way
  254.           COMMAND.COM is documented to work.
  255.  
  256.    3.03   4DOS will now preserve leading whitespace on the command tail for
  257.           external commands, and pass no whitespace to the command if
  258.           that's how the line is entered.  For example, the command:
  259.  
  260.                     myprog/c
  261.  
  262.           will pass "/c" to MYPROG; previously an extra space (" /c") was
  263.           passed.  This should fix occasional problems with programs that
  264.           can't handle leading whitespace.
  265.  
  266.    3.03   [p 31]  There is one additional character which can be used after
  267.           the 4DOS escape character (the escape character is normally ctrl-
  268.           X):  a "t" will mean the ASCII TAB character, so that:
  269.  
  270.                     ^Xt
  271.  
  272.           will place a TAB on the line (^X means the single character ctrl-
  273.           X, which appears on your screen as an upward-pointing arrow).
  274.  
  275.  
  276.       Command Line Editing:
  277.  
  278.    3.01   [p 28]  You can now enter characters that would normally be in-
  279.           terpreted by the line editor as a command (e.g., Ctrl-D or Ctrl-
  280.           K).  To do so precede the character with an ASCII 255 (hold down
  281.           the ALT key and enter 255 on the numeric keypad, then release the
  282.           ALT key).  To enter the ASCII 255 itself into the line, you must
  283.           enter it twice.
  284.  
  285.    3.02   [p 28]  The F3 key now works like COMMAND.COM, so you can type
  286.           part of a line and hit F3 to get the rest of the previous line.
  287.  
  288.  
  289.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 5
  290.  
  291.    3.03   [p 28]  TAB has been added as a synonym for F9, and Shift-TAB as
  292.    -->    a synonym for F8.  Also the F3 key will now put the cursor at the
  293.           end of the command line after recalling the previous command.
  294.  
  295.  
  296.       Batch Files:
  297.  
  298.    3.01   See the commands section below for information on the new LOADBTM
  299.           command, which allows any batch file to work as a BTM file some
  300.           or all of the time.
  301.  
  302.    3.03   [p 33-34]  The maximum batch file nesting depth has been in-
  303.    -->    creased to 8; the previous limit was 4 or 6, depending on the
  304.           version of 4DOS.
  305.  
  306.    3.03   Error levels generated by external programs in batch files are
  307.           now returned properly to the calling program when the batch file
  308.           is run from a transient 4DOS shell (4DOS /C).  This should fix
  309.           problems with BBS systems which return error levels through batch
  310.           files (also see the EXIT command below for related information).
  311.  
  312.  
  313.       I/O Redirection:
  314.  
  315.    -->    [p 43-44]  Redirection is now fully nestable.  For example, in-
  316.           voking a batch file XYZ with "XYZ > OUT.DAT" will redirect all
  317.           output from the batch file to OUT.DAT unless additional redirec-
  318.           tion is encountered within the batch file.  Note that nested
  319.           redirection applies to input and output only, NOT to pipes.
  320.  
  321.  
  322.       Environment Variables:
  323.  
  324.    3.01   [p 40]  In order to support subtraction in the new %@EVAL func-
  325.    -->    tion (see below) 4DOS will no longer accept a dash ("-") in the
  326.           name of an environment variable to be expanded, unless the name
  327.           is enclosed in brackets [].
  328.  
  329.    3.01   [p 41]  Three new internal variables have been added:
  330.  
  331.                     %_dow          The day of the week as a string (Mon,
  332.                                    Tue, etc.)
  333.                     %_rows         The height of the screen
  334.                     %_columns      The width of the screen
  335.  
  336.    3.02   [p 41]  One new internal variable has been added:
  337.  
  338.               %_ndp                Returns:
  339.                                         0 if no coprocessor is installed
  340.                                         87 for an 8087
  341.                                         287 for an 80287
  342.                                         387 for an 80387
  343.  
  344.  
  345.  
  346.  
  347.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 6
  348.  
  349.           [p 42]  There are a few minor errors or points which are not
  350.           clear in the list of variable functions in some versions of the
  351.           printed manual:
  352.  
  353.               * When using variable functions they must be preceded (and
  354.               optionally followed) by a percent sign, like all other envi-
  355.               ronment variables.  For example the "ext" function is refer-
  356.               enced as %@ext[filename] or as %@ext[filename]%.
  357.  
  358.               * The correct spelling for the string length function is
  359.               "%@len", not "%@length".
  360.  
  361.               * The %@line function is missing from early copies of the
  362.               printed manual.  This function returns the nth line of a
  363.               file.  The first line of the file is numbered 0.
  364.  
  365.               * In the %@substr function, the first character is numbered
  366.               0, and the correct syntax is "%@substr[string,start,length]"
  367.               not "%@substr[string,start,end]".
  368.  
  369.    3.01   [p 42]  A new function, %@eval, has been added.  The syntax is:
  370.  
  371.                     %@eval[expression]
  372.  
  373.           Where "expression" is any arithmetic expression.  The expression
  374.           can include any of the following elements:
  375.  
  376.               parentheses, which may be nested
  377.               unary + or - operators
  378.               multiplication and division operators:  *, /, and %% (modulo)
  379.               addition and subtraction operators:  + and -
  380.               environment variables, variable functions, and constants
  381.  
  382.           The elements of an expression are processed in the order shown
  383.           above.  For example, 5*3+2 is treated as (5*3)+2 rather than
  384.           5*(3+2).  Examples of the use of %@eval are:
  385.  
  386.               Increment a variable:  set a=%@eval[%a+1]
  387.  
  388.               Perform environment variable arithmetic:
  389.                     set c=%@eval[(%a*2) + (%@len[%b]-5)*7]
  390.  
  391.               Evaluate expressions in IF:
  392.  
  393.                     if %@eval[%@substr[%_time,0,2] %% 12] == 0 echo 12:00!
  394.  
  395.               Set up a simple command line calculator:
  396.  
  397.                     alias calc `echo The answer is:  %@eval[%&]`
  398.  
  399.    3.02   [p 42]  Commas will now be ignored by %@eval.  This will allow
  400.           (for example) %@eval[10,000 * 3] to get the expected result.  It
  401.           will also allow %@eval to work on the output of a command like
  402.           FREE, which contains embedded commas.  Also %@eval will give a
  403.  
  404.  
  405.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 7
  406.  
  407.           "Divide by zero" error message if you try to use 0 as a denomina-
  408.           tor for division or modulo calculation; previously it would give
  409.           an error for the modulo, but return the numerator as the result
  410.           for the division.
  411.  
  412.    3.02   [p 42]  %@substr can now handle quotes around the "string" argu-
  413.           ment.  Double quotes and back quotes are equivalent in this con-
  414.           text, and the quote characters DO count when determining which
  415.           characters are placed in the substring.  This capability allows
  416.           you to get substrings of strings which contain commas.  For exam-
  417.           ple:
  418.  
  419.                     %@substr["Mon, Aug 27, 1990", 1, 3]
  420.  
  421.           will return "Mon".  Previously the commas would be seen as argu-
  422.           ment separators, even if they were within a quoted string.
  423.  
  424.    3.01   [p 42]  Another new function, %@index[string1,string2] returns
  425.           the position of string2 within string1 (string2 can be as small
  426.           as a single character).  The first position in string1 is num-
  427.           bered 0.  If there is no match, the function returns -1.
  428.  
  429.    3.02   [p 42]  Two new variable functions have been added:
  430.  
  431.               %@upper[string]      Returns the string converted to upper
  432.                                    case.
  433.  
  434.               %@lower[string]      Returns the string converted to lower
  435.                                    case.
  436.  
  437.    3.01   [p 42]  When expanding environment variables 4DOS will display a
  438.           "Variable loop" error if you nest variable functions too deep, or
  439.           define variables which refer back to themselves.
  440.  
  441.  
  442.       Technical Information:
  443.  
  444.           (All items here go with the technical information on page 149 of
  445.           the manual.)
  446.  
  447.    3.01   4DOS now generates two different INT 2F calls to allow TSRs to
  448.           tell when 4DOS is back at the prompt.  These calls have AX =
  449.           D44Eh.  The first occurs immediately before displaying the
  450.           prompt, with BX = 0; the second occurs after displaying the
  451.           prompt and immediately before accepting keyboard input, with BX =
  452.           1.  Any routine intercepting these calls should preserve at least
  453.           the SI, DI, BP, SP, DS, ES, and SS registers.
  454.  
  455.    3.02   Divide by zero handling has been removed from 4DOS, allowing
  456.           standard DOS divide by zero handling to take place.  The 4DOS
  457.           divide by zero handler was not providing any advantage and could
  458.           occasionally fail to recover properly from division errors in
  459.           application programs.
  460.  
  461.  
  462.  
  463.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 8
  464.  
  465.    3.03   4DOS now does a disk reset following a ^C, or a MOVE, REN, or DEL
  466.           command.  This should fix problems occasional problems with disk
  467.           caches and FASTOPEN.
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                        page 9
  522.  
  523.  
  524.    Commands
  525.    --------
  526.  
  527.    This section describes the changes made to specific commands.  Note that
  528.    some commands are also affected by the general changes in the "features
  529.    and usage" section above.
  530.  
  531.    3.01   [[p 49]  ALIAS:  ALIAS /R can now read multiple files, for exam-
  532.           ple:
  533.  
  534.                     alias /r alias1 alias2 alias3
  535.  
  536.    3.03   BEEP, DELAY:  Fixed a bug that could hang the system if a BEEP or
  537.           DELAY was active at an even 1/2 hour.
  538.  
  539.    3.01   [p 57-58]  CD and CDD:  Modified to allow forward slashes (/) in
  540.           path names.
  541.  
  542.    3.01   [p 62-64]  COPY:  There are two changes:
  543.  
  544.               The /R and /U switches are now ignored if the target is a
  545.               device.
  546.  
  547.               A ^Z (end of file mark) is now properly added to the target
  548.               file when it is in ASCII mode.
  549.  
  550.    3.03   DATE:  If you enter only two digits for the year and it is below
  551.    -->    80, 4DOS will now assume it is in the 21st century; if it is 80
  552.           or above 4DOS will assume it is in the 20th century.  You can
  553.           specify the year you want explicitly by using a 4-digit value. 
  554.           The system of using 3-digit year values for dates in the 21st
  555.           century, as documented in the printed manual, has been removed. 
  556.           Also DATE now supports the European date display format (Mon  1.
  557.           Jan 1991).
  558.  
  559.    3.02   DIR:  Problems with occasional "Out of memory" errors and missing
  560.           description displays in DIR have been resolved.  However, if you
  561.           fragment DOS memory (for example by loading two TSRs, then un-
  562.           loading the first but not the second) you can get "Out of memory"
  563.           errors in larger directories as DIR tries to expand the memory it
  564.           is using to store your filenames and descriptions.  If this oc-
  565.           curs, determine the cause of the fragmentation and resolve it. 
  566.           The primary tool for solving such a problem is a memory mapping
  567.           program like MAPMEM, PMAP, or Manifest.
  568.  
  569.    3.03   DIR:  Fixed an occasional problem with doing a "DIR ." in the
  570.           root directory.
  571.  
  572.    3.03   [p 80]  EXIT:  EXIT now accepts a numeric argument (EXIT n).  The
  573.           argument value is returned to the previous program as the error
  574.           level.  If no argument is given the error level from the most
  575.           recent external program will be returned; this is a change from
  576.           previous versions of 4DOS, for compatibility with COMMAND.COM.
  577.  
  578.  
  579.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 10
  580.  
  581.    3.03   [p 81]  FOR:  An active FOR is now aborted properly when a nested
  582.           batch file CANCELs, or when a batch file chains to another batch
  583.           file.
  584.  
  585.    3.01   [p 83]  GLOBAL:  Added a /Q(uiet) switch to disable the display
  586.           of "GLOBAL: pathname".
  587.  
  588.    3.03   GOSUB:  Previously if a GOSUB was used within an IFF statement
  589.    -->    and there was another IFF statement inside the called subroutine,
  590.           the two IFF statements could interfere with each other.  This has
  591.           been corrected; two such IFF statements will now operate indepen-
  592.           dently of each other.  This also means that you can use a GOTO
  593.           inside the subroutine without canceling the operation of the IFF
  594.           statement in the calling part of the batch file (see next item on
  595.           GOTO and IFF).
  596.  
  597.    3.01   [p 85]  GOTO:  A GOTO inside an IFF statement now cancels all IFF
  598.    -->    processing, and assumes you've branched completely outside the
  599.           IFF construct.  If you haven't, you will get "Unknown command"
  600.           errors on subsequent ELSE, ELSEIFF, and ENDIFF statements (see
  601.           examples below).  This change was necessary to avoid frequent
  602.           errors caused by GOTOs from inside an IFF block which left IFF
  603.           processing active.  Also fixed a bug which prevented GOTO from
  604.           branching to the end of the file from within a GOSUB subroutine.
  605.  
  606.               iff "%1"=="Y"
  607.               :test
  608.                 copy file1 a:
  609.                 goto done               <--- Legal - branches outside the
  610.               else                           IFF block
  611.                 copy file2 b:
  612.                 goto test               <--- Illegal - branches within IFF
  613.               endiff                         block
  614.               [do some other work here]
  615.               :done
  616.  
  617.    3.01   [p 88-90]  IF:  There are several corrections to the description
  618.           in the printed manual.  Some of these errors are present only in
  619.           early copies of the manual:
  620.  
  621.               * The DOS memory size option is named DOSMEM, not DOSFREE.
  622.  
  623.               * The tests which check a numeric value (EMS, DOSMEM, etc.)
  624.               use the same relational operators as the string tests, as
  625.               shown in the examples.  For example, the syntax for EMS
  626.               should read:
  627.  
  628.                     EMS relop n[K|M]
  629.  
  630.               where "relop" means EQ, GE, GT, etc.  The "relop" is optional
  631.               for ERRORLEVEL, but required for all other numeric tests.
  632.  
  633.               * The MONITOR and VIDEO tests also require a relational oper-
  634.               ator (==, EQ, or NE) as described above for numeric tests.
  635.  
  636.  
  637.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 11
  638.  
  639.               * The IF ATTRIB test has an additional option:  "N" tests for
  640.               no attributes set (i.e. all of the other attributes are off). 
  641.  
  642.               * IF ATTRIB volname V will only work if the volume name re-
  643.               fers to the root directory, and if there is a period after
  644.               the eighth character in volume names of nine characters or
  645.               more (e.g. to test for volume "MYFILES0107" in drive A:, use
  646.               IF ATTRIB A:\MYFILES0.107 V ...).
  647.  
  648.               * Two tests are missing from some copies of the printed manu-
  649.               al:
  650.  
  651.                     IF DISKFREE relop n
  652.                          Tests the disk free space on the current drive. 
  653.                          Cannot be used to test other drives.
  654.  
  655.                     IF FILESIZE filename relop n
  656.                          Tests the size of the specified file.
  657.  
  658.                     For example:
  659.  
  660.                          if diskfree gt 40M echo Plenty of room
  661.                          if filesize myfile.dat gt 360K echo It won't fit!
  662.  
  663.    3.01   [p 88-90]  IF:  String comparisons will now be done numerically
  664.           if both values being compared begin with a digit.  This allows
  665.           you to do true arithmetic tests.  For example:
  666.  
  667.               set aa=027
  668.               set bb=20
  669.               if %aa gt %bb ...         This test will succeed because it
  670.                                         will compare the numeric values 27
  671.                                         and 20.
  672.               if "%aa" gt "%bb" ...     This test will fail because it will
  673.                                         compare the alphanumeric values
  674.                                         "027" and "20", and the "02" will
  675.                                         appear 'smaller' (alphanumerically)
  676.                                         than "20".
  677.  
  678.    3.01   [p 94]  KEYSTACK:  There are two changes:
  679.  
  680.               * KEYSTACK now supports a new symbol, !, to clear keystrokes
  681.               from the typeahead buffer, as well as anything in the
  682.               KEYSTACK buffer.  For example:
  683.  
  684.                     keystack ! @59
  685.  
  686.               will clear the typeahead buffer before stacking the @59 (F1)
  687.               keystroke.
  688.  
  689.               * Some programs will not interpret stacked keystrokes proper-
  690.               ly unless they contain both the correct ASCII value and the
  691.               correct keyboard "scan code".  For example, if you attempt to
  692.               KEYSTACK an "Enter" using ASCII code 13 (carriage return) and
  693.  
  694.  
  695.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 12
  696.  
  697.               see a small musical note instead, the program you are running
  698.               probably needs the scan code to interpret the keystroke prop-
  699.               erly.
  700.  
  701.               KEYSTACK now supports the entry of scan codes for standard
  702.               ASCII keys.  To enter the scan code, multiply it by 256 and
  703.               add it to the ASCII code.  Using the same example, the scan
  704.               code for the Enter key is 28, so the full value for this key
  705.               would be 28*256+13 = 7181.  With some programs you will find
  706.               that KEYSTACK 7181 works when KEYSTACK 13 does not (or vice
  707.               versa).  Experimentation is required to get the correct val-
  708.               ue.  A full discussion and table of scan codes is beyond the
  709.               scope of this document, but is available in many basic PC
  710.               books.
  711.  
  712.    3.01   [p 95]  LIST:  There are two changes:
  713.  
  714.    -->        Changed the search and print keys to use letters instead of
  715.               function keys:  F(ind), N(ext), and P(rint).  This avoids
  716.               conflicts when you wish to redefine the function keys for
  717.               other purposes.
  718.  
  719.               Added a new switch, /H, to strip the high bit of each charac-
  720.               ter, for displaying WordStar documents and other similar
  721.               files.
  722.  
  723.    3.01   [p 96]  LOADBTM:  This is a new command.  It will switch the
  724.           current batch file to and from .BTM mode.  The syntax is:
  725.  
  726.                     LOADBTM [ON | OFF]
  727.  
  728.           LOADBTM ON loads the entire file into memory and processes the
  729.           following lines as a .BTM file.  LOADBTM OFF unloads the file
  730.           from memory and processes the following lines one by one like a
  731.           .BAT file.  Both commands can be used regardless of the file's
  732.           original extension.  
  733.  
  734.           LOADBTM will allow you to have a single batch file for both
  735.           COMMAND.COM and 4DOS, and select .BTM mode via a statement like:
  736.  
  737.                     if "%@eval[2+2]" == "4" loadbtm on
  738.  
  739.           Since the %@eval function does not exist under COMMAND.COM, the
  740.           IF test will fail there and the rest of the line will be ignored. 
  741.           Under 4DOS where %@eval exists, the LOADBTM ON will be executed.
  742.  
  743.           LOADBTM will also allow you to load TSRs from a .BTM file by
  744.           switching it into .BAT mode, loading the TSRs, and switching back
  745.           to .BTM mode.  However note that, depending on what the file
  746.           does, such mode switching can erase much of the speed gained by
  747.           using a .BTM file in the first place.
  748.  
  749.    3.03   PROMPT:  When displaying the date in the prompt 4DOS now supports
  750.    -->    the European format (e.g. Mon  1. Jan 1991).
  751.  
  752.  
  753.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 13
  754.  
  755.    3.03   REN:  Fixed a bug which would give an "Invalid path" error when
  756.           the only thing specified for the target was ".", as in:
  757.  
  758.                     ren \4dos\4dos.doc .
  759.  
  760.    3.01   [p 117]  SET:  SET /R can now read multiple files, for example:
  761.  
  762.                     set /r env1 env2 env3
  763.  
  764.    3.01   [p 119]  SETDOS:  There are two changes:
  765.  
  766.               /S now resets the cursor shape immediately, so it can be used
  767.               to hide the cursor while in a batch file.
  768.  
  769.               /U1 should now properly return uppercase filenames in all
  770.               instances.
  771.  
  772.    3.02   [p 119]  SETDOS:  The COMPOUND character (SETDOS /C) can now be
  773.           any ASCII character except those specified in the manual as not
  774.           allowed.  Previously characters above ASCII 127 would not work as
  775.           the separator.
  776.  
  777.    3.03   TIME:  An invalid entry will now display an error message and
  778.           prompt again, instead of generating an incorrect time value.
  779.  
  780.    3.03   TYPE:  TYPE will now stop on a ^Z (end of file mark), for compat-
  781.           ibility with COMMAND.COM.
  782.  
  783.    3.03   Y:  "Y:" at the start of the command line will now refer to drive
  784.           Y rather than the Y command.  This should allow network users
  785.           with mapped "Y" drives to execute programs on those drives with-
  786.           out having to disable the 4DOS Y command.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 14
  812.  
  813.  
  814.    HELP System
  815.    -----------
  816.  
  817.    This section describes changes made to the 4DOS HELP system.
  818.  
  819.       New Capabilities and Topics:
  820.  
  821.    3.01   HELP is now DESQView-aware and should run properly in a less than
  822.           full screen DESQView window.
  823.  
  824.    3.01   HELP now accepts up to 16 pages per topic and 32 cross-references
  825.           per topic, to allow 4MAKE users to install longer topics inside
  826.           the help file.
  827.  
  828.    3.02   The text has been modified in many places.  An ANSI table has
  829.           been added along with the APPEND, FASTOPEN, GRAPHICS, KEYB,
  830.           NLSFUNC, RECOVER, and REPLACE commands, and more information on
  831.           HELP itself.  The explanations of JOIN and SUBST are more de-
  832.           tailed.  All resident commands now show their DOS 3.3 resident
  833.           size.  Several minor typographical errors have been corrected.
  834.  
  835.  
  836.       Environment Variables and Switches:
  837.  
  838.    3.02   HELP has two switches which can be set temporarily on the command
  839.           line (in version 3.02 or later), or "permanently" -- until ex-
  840.           plicitly changed -- via the 4HELPC environment variable (see
  841.           below).  When switches are set on the command line they can be
  842.           placed before or after the topic name (if any), so for example
  843.           these two commands are equivalent:
  844.  
  845.                     help copy /r
  846.                     help /r copy
  847.  
  848.           The switches are:
  849.  
  850.    3.02       /BW:  Forces HELP to display all text in monochrome colors,
  851.               to support the use of monochrome monitors attached to color
  852.               video boards (e.g. use of a composite monochrome monitor on a
  853.               CGA system).  If you have such a system you will probably
  854.               want to set the /BW switch permanently as shown under 4HELPC
  855.               below.
  856.  
  857.    3.01       /R:  Disables dynamic window resizing and forces all text
  858.               screens to be displayed at the full screen height for those
  859.               who prefer an unchanging display window size.
  860.  
  861.  
  862.    3.01   Three new environment variables have been added to give you bet-
  863.           ter control over HELP:
  864.  
  865.               4HELP:  Specifies the full path and file name for the help
  866.               program to be loaded when F1 is pressed.  If 4HELP is not
  867.  
  868.  
  869.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 15
  870.  
  871.               used, 4DOS will look for HELP.EXE in the current directory
  872.               and then on the PATH.  4HELP affects only F1, NOT the HELP
  873.               command; if you need to change how the HELP command works as
  874.               well, use an alias.  
  875.  
  876.               For example, if your HELP files are in the directory
  877.               D:\4DOS\HELP you will need the following lines in
  878.               AUTOEXEC.BAT:
  879.  
  880.                     set 4help=d:\4dos\help\help.exe
  881.                     alias help d:\4dos\help\help.exe
  882.  
  883.               4HELPF:  Specifies the full path and file name for the help
  884.               text file.  If not used, HELP will search for DOS.HLP in the
  885.               directory specified in 4HELP (if any), then in the current
  886.               directory and on the path.
  887.  
  888.               4HELPC:  Specifies permanent control switches for HELP.EXE. 
  889.               More information on switches is above.  For example, to per-
  890.               manently force HELP into monochrome mode, place the following
  891.               line in AUTOEXEC.BAT:
  892.  
  893.                     set 4helpc=/bw
  894.  
  895.  
  896.       Configuring HELP with HELPCFG:
  897.  
  898.           The HELPCFG.EXE program, provided with 4DOS, can be used to con-
  899.           figure the help system display colors.  To use it, change to the
  900.           directory HELP.EXE is in, be sure HELPCFG.EXE is in the same
  901.           directory, and enter the command:
  902.  
  903.                     HELPCFG
  904.  
  905.           HELPCFG allows you to set the colors for several different por-
  906.           tions of the help display.  Use the vertical arrows to select
  907.           which type of display color you wish to adjust.  Hit <cr> and you
  908.           will be able to move a box in the left-hand window to select the
  909.           color.  Hit <cr> again to select the color, or Esc to return to
  910.           the right hand window without changing the color.  Another Esc
  911.           will save the new colors and return you to DOS.
  912.  
  913.           If you are using a monochrome monitor on a color system and re-
  914.           quire HELP's /BW switch for proper displays, you may not be able
  915.           to change the monochrome display attributes easily with HELPCFG,
  916.           which does not currently have a /BW switch.  This will be changed
  917.           in a future release of 4DOS.
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.    4DOS 3.03  [4-12-91]          UPDATE30.DOC                       page 16
  928.  
  929.